package handler

import (
	 "apiserver/pkg/errno"
	 "github.com/gin-gonic/gin"
	 "net/http"
	 "github.com/zxmrlc/log"
	 "encoding/json"
)

// 定义返回的数据格式
type Response struct {
	Code int `json:"code"`
	Message string `json:"message"`
	Data interface{} `json:"data"`
}

// 定义返回数据函数
func SendResponse(c *gin.Context, err error, data interface{}) {
	// 解析错误代码
	code, message := errno.DecodeErr(err)

	// 定义返回的数据
	rsp := Response{
		Code: code,
		Message: message,
		Data: data,
	}

	// always return http.StatusOK
	c.JSON(http.StatusOK, rsp)
	   
	// 将数据解析成json并记⽇志(这⾥也可以根据code决定将⽇志记录成哪个级别)
	rsp_byte,_ := json.Marshal(rsp)
	log.Debugf("[response data]:%s", string(rsp_byte))
}


